package javaCode.chapter04.练习;

public class 金字塔 {

    public static void main(String[] args) {

        /*

                *
               * *
              *   *
             *******

        思路分析
        化繁为简
        1.先打印一个矩形

        2.打印半个金字塔
        *       第1层 1个*
        **      第2层 2个*
        ***     第3层 3个*
        ****    第4层 4个*

        3.打印整个金字塔
        *      第1层 1个*  2*层数-1  有3=(总层数-当前层数)个空格
       ***     第2层 3个*           有2个空格
      *****    第3层 5个*           有1个空格
     *******   第4层 7个*           有0个空格


        4.打印空心的金字塔
        *      第1层 1个*  2*层数-1  有3=(总层数-当前层数)个空格
       * *     第2层 2个*           有2个空格
      *   *    第3层 2个*           有1个空格
     *******   第4层 7个*           有0个空格

        先死后活
        5.层数做成变量 int totalLevel = 5;

         */

        int totalLevel = 100;
        for (int i=1;i<totalLevel;i++){ //i表示层

            //在输出*之前，还有输出 对用空格
            for (int k=1;k<(totalLevel-i);k++){
                System.out.print(" ");
            }

            //控制打印每层的*的个数
            for (int j=1;j<(i*2-1) ;j++){
                //当前行的第一个位置是*，最后一个位置也是*，最后一层全部 *
                if (j==1 || j==(i*2-1) || i==totalLevel-1){
                    System.out.print("*");
                }else { //其他情况输出空格
                    System.out.print(" ");
                }

            }
            //每打印一层的*后，就换行
            System.out.println("*");
        }
    }
}
